package com.sky.annotation;
import com.sky.enumeration.OperationType;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Author 褚金龙
 * @Date 2024/9/1 13:15
 */
    /**
    自定义注解： 用于标识某个方法需要进行功能字段自动填充处理
     */
    //表明作用对象是方法
    @Target(value = ElementType.METHOD)
    /**
    RUNTIME策略意味着注解不仅会被保留在编译后的类文件中，而且在程序运行时，注解信息也会被加载到JVM的内存中。这使得开发者可以通过反射机制读取类、方法或字段上的注解信息，进而在运行时进行一些特殊的操作，如动态生成代码、动态代理等。
     */
    //运行时实现的，aop必写
    @Retention(RetentionPolicy.RUNTIME)
public @interface AutoFill {
        // 数据库操作类型：update,insert
                       //value()里面是枚举常量
        //这里的OperationType 是定义的一个枚举类型，value是里面的枚举常量，在我们标识对应的方法中可以使用不同的常量来执行不同的判断
         OperationType value();


}
